
/** 将json文本解析为json 如果无法解析就直接返回原文本
 * @param {string} str 可或者不可用于解析成json 的文本
 * @returns {JSON | string}
 */
function str2json(str) {
    // 替换单引号为双引号，并转义内部双引号
    const cleanedText = str
        .replace(/'/g, '"')                 // 单引号转双引号
        .replace(/(\w+)(?=\s*:)/g, '"$1"')  // 给键名加双引号
        // .replace(/([{,]\s*)"/g, '$1\\"')    // 转义对象内的双引号
        // .replace(/"(\s*[},])/g, '\\"$1')    // 给双引号加转义符
        .replace(/[\r\n\t]/g, '');          // 移除 \r、\n、\t
    try {
        const arr = JSON.parse(cleanedText);
        // console.log(array);
        return arr
    } catch (e) {
        // console.error('解析失败:', e);
        return str
    }
}